home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 026a / tl_form.zip / TL_FORM.GEN < prev   
Text File  |  1990-08-19  |  23KB  |  364 lines

  1.  
  2. Format (.fmt) File Template with POPUP field validation
  3. -------------------------------------------------------
  4. Version 1.1.19
  5. Ashton-Tate (c) 1987, 1988, 1989, 1990
  6. Written by Kirk J. Nason & Bill Ramos
  7. Modified by Tony Lima 08/18/90 to allow REQUIRED clause with
  8.   VALID.  To add a REQUIRED, insert the following before
  9.   your other logical conditions:
  10.     'REQ'='REQ' .AND. <rest of logical condition here>
  11.   Note that this works because 'REQ'='REQ' always returns
  12.   a logical .T.  The template looks for this string,
  13.   writes the word REQUIRED to the FMT file, then resets
  14.   the logical condition to only keep everything beyond the
  15.   blank space after the .AND.
  16.  
  17.   WARNING:  BE SURE YOU USE EXACTLY THE SYNTAX SHOWN HERE,
  18.   INCLUDING ALL BLANK SPACES.
  19.  
  20. This template will support POPUPs for VALID clause field validations and
  21. context sensitive help for each field.
  22.  
  23. Example: In "ACCEPT value when" under "Edit options" enter,
  24.         "POPUP" = "vendor->vendor_id ORDER vendor_id REQ SHADOW"
  25.         --------------------------------------------------------
  26.         this will activate a popup if the data entered is invalid for
  27.         that field and will also make the field REQUIRED.
  28.  
  29. Explanation of the POPUP string follows:
  30.  
  31. POPUP              Indicates that a popup will be used for this field.
  32. vendor->vendor_id  Indicates the .DBF to open and FIELD to use as validation.
  33. ORDER vendor_id    Indicates which INDEX TAG to SEEK in.
  34. REQ                Indicates the FIELD requires data (can't be empty).
  35.                    Leave REQ out if the field is NOT required.      OPTIONAL!
  36. SHADOW             Use shadowing effect on popups                   OPTIONAL!
  37. NOTE: The POPUP string must be entered with the quotes as in the example.
  38.  
  39. --------------------------------------------------------------------------------
  40.  
  41. Explanation of the Context Sensitive Help file follows:
  42.  
  43. If you want to create your own help file, here is the structure that is required.
  44.  
  45. Structure for Help Database (.dbf):
  46. <first 6 chars. of the format file name>_H.dbf
  47.  
  48. Field   Field Name  Type        Width  Dec   Tag
  49. -------------------------------------------------
  50.     1   FLD_NAME    Character     10         Yes  Field name to lookup on F1
  51.     2   FLD_HEADNG  Character     25          No  Heading to show user on window
  52.     3   FLD_HELP    Memo          10          No  Help text to show user
  53. -------------------------------------------------
  54.         Total                     46
  55. ε¡Ω    (xåY▐»╛∩@Oñ:.F
  56. @Oñ::@TD;86 @U{;(=8m@Vÿ;8n@W¬; ;@W¬;@Y┤;.è
  57. @Y┤;:@]I<8m@^f<8n@_z< ;@_z<@aä<.²
  58. @aä<:@d∞<6Ω
  59. @e=8; 8< 8?@f/= >@f/=@g9=;@hK=<@hK=@jU=.~ @jU=:@o└=>@o└=@p┌=5g 80 8n@r>.* @r>@s><@t><@t>@v%>.╘ @v%>:@xè>8< 8= 8< 8>@y═> ;<@y═>@{╫>.! @{╫>:@}:?/ . @}:?@}:?;@~Z?<@~Z?@MW╡ 1ò @N¢    :Can't use FORM.GEN on non-form objects.  Press any key ...8N@O╗.▐@P╩@u2     
  60. 80@vC @wO     @x^
  61. @yé@{«    "9U7@9]D /▐@üA9;3@éü9²@â└9¢@ä⌡9ò @à+9δ%@å}9ç2@ê├ 2╔@ë╓    )Form design was empty.  Press any key ...8N@è≈@ï     .FMO8{@î@ì%;@ö╖.ë@ö╖:
  62. *-- Format file initialization code --------------------------------------------
  63.  
  64. *-- Some of these PRIVATE variables are created based on CodeGen and may not 
  65. *-- be used by your particular .fmt file
  66. PRIVATE lc_talk, lc_cursor, lc_display, lc_status, lc_carry, lc_proc,;
  67.         ln_typeahd, gc_cut
  68.  
  69. IF SET("TALK") = "ON"
  70.    SET TALK OFF
  71.    lc_talk = "ON"
  72. ELSE
  73.    lc_talk = "OFF"
  74. ENDIF
  75. lc_cursor = SET("CURSOR")
  76. SET CURSOR ON
  77. @⌐├    439û8 8. /8
  78. *-- This form was created in @½Θ9û8 ? mode
  79. lc_display = SET("display")
  80. IF .NOT. "43" $ lc_display                             && In 25 line mode
  81.    IF "EGA" $ lc_display
  82.       *-- If EGA is in lc_display try EGA43
  83.       SET DISPLAY TO EGA43                     
  84.    ELSE
  85.       *-- Otherwise try MONO43
  86.       SET DISPLAY TO MONO43
  87.    ENDIF
  88. ENDIF
  89. @╖z
  90. lc_status = SET("STATUS")
  91. *-- SET STATUS was @╗╢/╙ON when you went into the Forms Designer.
  92. IF lc_status = "OFF"
  93.    SET STATUS ON
  94. @┐.4@┐OFF when you went into the Forms Designer.
  95. IF lc_status = "ON"
  96.    SET STATUS OFF
  97. @├zENDIF
  98. @╔`j@╩{8F @╩{8I 0V9H@╦ÄX/Ö,>@╦Ä@╠┼@80     M2G¬/G6G@╬,    wndow    ,
  99. *-- Window for memo field @╤[=9É  ?.
  100. DEFINE WINDOW @╥Æ9α? ?@╙╢@╘└,.^@╘└@╒╠8B@╫∩/σ
  101. lc_carry = SET("CARRY")
  102. *-- Fields to carry forward during APPEND.
  103. SET CARRY TO @█9 9vB ?
  104.  
  105. @▌Y @▀e 9├F@αé  /ó
  106. ON KEY LABEL F2 ?? chr(7)
  107.  
  108. lc_proc = SET("procedure")                       && Store procedure file name
  109. SET PROCEDURE TO u_@σ≤ (8< ?
  110.  
  111. @τ!@Φ(!9tG@ΘG! /y0Ilc_proc = SET("procedure")                       && Store procedure file name
  112. SET PROCEDURE TO u_@δ▓!(8< ?
  113. @∞┘!ON KEY LABEL F1 DO Help WITH VARREAD()
  114. @ε"@∩"<@±@"<@±@"@⌠î".â @⌠î":
  115. *-- @ SAY GETS Processing. -----------------------------------------------------
  116.  
  117. *--  Format Page: @·#
  118. 
  119. ?
  120. @²W#    Φ@■k#8F @■k#8I 0l ½W9ô9@ │# 9H@╦# /╜READ
  121.  
  122. *-- Format Page: @╓#
  123. ?
  124.  
  125. @⌡#@$=1Σj2─@    O$?2?*-- Calculated field: @ v$=9É  ? - L?
  126. @ ╣$@┼$?2î*-- Memory variable: @ε$=9É  ?
  127. @%@ @,%ß9µ      ?,]9µ  ? @j%@t%>2≈@ @á%9ï@ ?@╣%@╚%. @ß%SAY @ 0'_8-  6╩@!S'_86 2wCHR(@"y'_8- ?) @#Æ'.┐@#Æ'REPLICATE(CHR(@$í'_8- ?), _86 ?) @%╫'@'≥'.E@'≥'_8<     "2@+╜(    [@,α(    ]>@,α(@-≡(_? @/\)    ">@/\)@0i)9,? ?@1|).A @1|)@2Ä)áí9m> ?@3║)9,? ?@4╬).A @4╬)@5α)W0╨SAY @7*?20@9}*M@:«*8F @:«*8I 0M?@;╬*,.⌡@;╬* @?Y+.î@?Y+?2Q     .h@?Y+    m-> @?Y+@@Ñ+>=9É  ? @A╪+@BΦ+9Σ5 /┼PICTURE "@C
  128. ,9?%" @D-,@E=,.α@E=,GET @G_,?2■     .@G_,    m-> @G_,@H¿,>=9É  ? @I╒,@80     M2╕¬/╕@J-6w,>@J-@KD-¬2£OPEN @KD-WINDOW wndow? @Lë-@MÖ-9Σ5 /±PICTURE "@N╗-9y$" @O▐-@Pε-O0P/`@Pε-;
  129.    RANGE @R..O?P/V,P?@R.. @Sr.@Té.S/╟;
  130. @V│.    POPUPS87 8= 8.     22l@W⌡.    7Picklist coordinates exceed column 79 - move field left9a6 /l   VALID @[╞/S9M /5REQUIRED @[╞/@\ /=9║L ?( =9É  ? ) @_T0.9@_T0    POPUPS87 8= 8.     212@c╩0     'REQ'='REQ'S8= 8. 2   VALID REQUIRED @e1S8< ? @hZ1.+@hZ1   VALID @i]1S? @kz1@lô1@m¬1@o┐1T/└;
  131.    ERROR @r≡1    IIFT8= 8. 0â"@r≡1T?@s92    IIFT8= 8. 0╢"@s92 @tv2@uë2@v¿2R/;
  132.    WHEN @x┘2R? @z⌡2@{3Q/H;
  133.    DEFAULT @}63Q? @~R3@b3c/┘;
  134.    MESSAGE @éí3    IIFc8= 8. 0£"@éí3c?@âτ3    IIFc8= 8. 0╧"@âτ3 @ä!4@à14@çQ49,? ?@êd4@ëz4.A @ëz4.V @èù4.A @èù47=>ejí. @èù4
  135. @æ5 ,@Æ(5@ô55,.P@ô55@ö>5<@ûa5<@ûa5@Ö¡5.g$@Ö¡5:*-- Format file exit code -----------------------------------------------------
  136.  
  137. *-- SET STATUS was @₧16/║!ON when you went into the Forms Designer.
  138. IF lc_status = "OFF"  && Entered form with status off
  139.    SET STATUS OFF     && Turn STATUS "OFF" on the way out
  140. @óπ6.a"@óπ6OFF when you went into the Forms Designer.
  141. IF lc_status = "ON"  && Entered form with status on
  142.    SET STATUS ON     && Turn STATUS "ON" on the way out
  143. @ªà7ENDIF
  144. @¿ò7/û"
  145. SET CARRY &lc_carry.
  146. @½┬7SET CURSOR &lc_cursor.
  147. SET TALK &lc_talk.
  148. @«≈7    439û8 8. /&#SET DISPLAY TO &lc_display.      && Reset Screen size if changed
  149. @░]8@▒f8/t#
  150. RELEASE WINDOWS @│}886 < ?
  151. @┤╗8
  152. RELEASE @╢╞8/ƒ#lc_carry,@╢╞8lc_talk,lc_fields,lc_status
  153. @╖9/σ#
  154. ON KEY LABEL F1
  155. @║89@╗D90·#/6$@╗D9ON KEY LABEL F2
  156.  
  157. SET PROCEDURE TO (lc_proc)
  158. @┐û9*-- EOP: @└ú983 ?FMT
  159. @┴┼9<@├Θ9<@├Θ9@╞5:.-%@╞5::@╟P:Kü/╙$@Kü?@╚|:    SKü8. /╔$╖ü?@╚|: @╩╓:@╦σ:    MKü8.@╠    ; /%┤ü?@╬0;.%@╬0;Jü?@╧J;@╨V;<@╤`;<@╤`;@╘¼;.┘%@╘¼;:@╒╟;Kü/Ö%@Kü?@╓≤;    SKü8. /Å%╖ü?@╓≤; @╪M<@┘\<    MKü8. 0╔%@┌ü<Jü?@█¢<@▄º<<@▌▒<<@▌▒<@α²<.u2@α²<:@πb=/e29┬E 0!&@Σé=;@σ¢=@µ¼=9\4@τ─= ?FUNCTION Empty                && Determine if the passed argument is NULL
  160. PARAMETER x
  161.   mtype = TYPE("x")
  162.   DO CASE
  163.     CASE mtype = "C"
  164.       retval = (LEN(TRIM(x))=0)
  165.     CASE mtype$"NF"
  166.       retval = (x=0)
  167.     CASE mtype = "D"
  168.       retval = (" "$DTOC(x))
  169.   ENDCASE
  170. *-- EOP: empty
  171. RETURN (retval)
  172.  
  173. @°?    @·8?
  174. j@ⁿ^?8F @ⁿ^?8I 042    POPUPS87 8= 8.     22╪'.δ'@ⁿ^?@ⁿ^?@■░?9H@ε?/%2ß9µ  @1@    ]9µ @i@ ½W9ô9@─@     9a6 /%2@A    -N8V    * 8BFUNCTION @IA=9║L ?
  175.   PARAMETER fld_name
  176.   PRIVATE ALL LIKE ??_*
  177.   PRIVATE esckey, fld_name, rtn_fld
  178.   ll_return = .F.
  179.  
  180. @┘AS9M 0═)  IF empty(fld_name)                   && Not a required fiel cur.FLD_TEMPLATE
  181.      RETURN (.T.)                       && if null field
  182.   ENDIF
  183.  
  184. @ªB  EscKey = 27                          && 27 represents the ESC key
  185.  
  186.   lc_alias = ALIAS()                   && Grab current workarea
  187.   SELECT SELECT()
  188.   USE @^CS9aI ? ORDER S9J ? AGAIN
  189.  
  190.  
  191.   lc_exact = SET("EXACT")              && Store value of EXACT
  192.   SET EXACT ON
  193.  
  194. @÷C@80     C2[+  fld_name = IIF( EMPTY( TRIM( fld_name)), fld_name, TRIM( fld_name))
  195. @ vD  SEEK fld_name
  196.  
  197.   SET EXACT &lc_exact.                 && Restore SET EXACT to org. value
  198.   IF .NOT. FOUND()
  199.  
  200.       DEFINE POPUP @&ES9íK ? FROM @'<E6p,@(iE?,? ;
  201.         TO @)ÿE?,J86 ? ;
  202. @+ΩE.╧,@+ΩE ?,? ;
  203.         TO @,F?,J86 ? ;
  204. @-`F        PROMPT FIELD @.rFS9∩J ? ;
  205.         MESSAGE @/úF    5[Select: ]+CHR(17)+CHR(196)+CHR(217)+[   Cancel: Esc]?
  206.  
  207.       ON SELECTION POPUP @1─FS9íK ? DEACTIVATE POPUP
  208.  
  209. @3 G@80     C2╫-      KEYBOARD TRIM(fld_name)
  210. @5iG      SAVE SCREEN TO temp
  211. @7áGS9╢M /û.@8╙G    5Shadow coordinates exceed column 79 - move field left9a6 /û.      DO shadowg WITH @:HJ9∩K
  212.  
  213. @<UH      ACTIVATE POPUP @>sHS9íK ?
  214.  
  215.       rtn_fld = PROMPT()                         && Get user choice from Piclist
  216.  
  217.       RELEASE POPUP @B·HS9íK ?
  218.  
  219.       RESTORE SCREEN FROM temp
  220.  
  221.       IF LASTKEY() <> EscKey
  222.         @ @GlI?,? GET rtn_fld @HíI9Σ5 /⌠/PICTURE "@I╞I9y$" @J∞I9,? ?@KJ
  223.         CLEAR GETS
  224.  
  225.         REPLACE @O.J<9É  ?->=9É  ? WITH @P|J@80     C2y0rtn_fld
  226. @R│J.û0@R│JVAL(rtn_fld)
  227. @T╤J
  228.         ll_return = .T.
  229.       ELSE
  230.         ll_return = .F.
  231. @Z%KS9M 0j1        IF EMPTY(fld_name)               && Not a required field, so return
  232.           ll_return = .T.
  233.         ENDIF
  234.  
  235. @a█K      ENDIF
  236.  
  237.   ELSE
  238.       ll_return = .T.
  239.   ENDIF
  240.  
  241.   USE
  242.   SELECT (lc_alias)                    && Go back to the edit file
  243.  
  244. *-- EOP: @lL=9║L ?
  245. RETURN (ll_return)
  246.  
  247. @p┐L@q╒L,.ƒ'@q╒L@rΩL    -N8V    * 8B
  248. @tM@u'M<@wOM<@wOM@z¢M.)3@z¢M:@Ç}N/±20▐2@üùN9┬E 0╦2@é┤N;@â╩N@à∙N9\4@åO@êEO9@P@ëVO@è]O03/3@îÿO9oN@ì░O@Ä╖O<@Å└O<@Å└O@Æ P.J4@Æ P:@ö=P    *P8V 8B*-- Name.......: @òfP83 ?FMT
  249. *-- Date.......: @ûÉP8M 8< 87 ?
  250. *-- Version....: dBASE IV, Format @ù└Pû?.1
  251. *-- Notes......: Format files use "" as delimiters!
  252. @Ö&Q    *P8V 8B@ÜNQ<@ÜNQ@¥ÜQ.╥5@¥ÜQ:@ƒ╙Q    -N8V    * 8B*-- Name....: @áⁿQ*?u_(8< 88 ?.PRG
  253. *-- Date....: @í7R8M 8< 87 ?
  254. *-- Version.: dBASE IV, Procedure for Format @óbRû?.1
  255. *-- Notes...: Procedure file for VALID POPUPs and/or Context Sensitive Help
  256. *-- ........: for @ñδR83 ?FMT
  257. @ÑS    -N8V    * 8B@ª;S<@ª;S@⌐çS.O6@⌐çS:@¬áSJü/:6@ü80     D1:6@½ßS@ü80     M1:6@¼%T;@«CT;@░bT<@░bT@│«T.C7@│«T:@╣NV]ü9µ  Jü86 P4.7@╗╜V/!79 @╝ⁿV8o@╜W
  258. =ü    Error on Field: =9⌡    @╛PW 9⌡    @┐tW    Press any key ...8N@└ÅW@┴₧W;@├╝W;@┼█W<@┼█W@╚'X.ä8@╚'X:@╩wX8k@╦ùX 4░7@═╩X'@╬πX$@╧∞X.▌7@╧∞X@╨Y@╤Y@╤Y@╘mY>'8k@╒ÉY 238038@╫╤Y@╪ΘY>@╪ΘY@┘≤Y'2t80t8@█EZ*@▄]Z'>@▄]Z@▌gZ<@▐sZ<@▐sZ@ß┐Z.ü9@ß┐Z:@Σ[.:9@σ.[@µL[    MONO.g9@µL[@τk[    COLOR.g9@τk[@Φè[    EGA25.g9@Φè[@Θ¬[    MONO43.g9@Θ¬[@Ω╔[    EGA43.g9@Ω╔[7╡8╨8∞89%9@Ω╔[@δ╫[;@∞Ω[<@∞Ω[@∩6\.[>@∩6\:@ o^    @ô^Ç!@╖^!!0≈9@°^!/°9@°^@_p!@<_!@__!@é_!0C>@    ═_/r:>@    ═_@ `1╢;1╢;@ 7`.b;@O`@i`    n.ñ;@i`@â`    b.ñ;@â`@¥`    g.ñ;@¥`@╕`    bg.ñ;@╕`@╥`    r.ñ;@╥`@φ`    rb.ñ;@φ`@a    gr.ñ;@a@"a    w.ñ;@"a7ª:╛:╓:ε:;;8;Q;@"a@<a.╙;@<a@Ra    w>@Ra@sa/√;@ôa    i>@ôa@│a/#<@╙a    u>@╙a@!⌠a/K<@"b    +>@"b@$1b/s<@%Qb    *>@%Qb@)}b    /1ß=1ß=@*▓b.ì=@+╦b@,∩b    n.╧=@,∩b@-c    b.╧=@-c@.7c    g.╧=@.7c@/\c    bg.╧=@/\c@0Çc    r.╧=@0Çc@1Ñc    rb.╧=@1Ñc@2╩c    gr.╧=@2╩c@3εc    w.╧=@3εc7▒<═<Θ<="=>=[=x=@3εc@5d.>@5d@6(d    n>@6(d@85d/<>/<>@9Yd    ,@:âd>@:âd@<Éd@=⌐d8T ;@>─d<@>─d@Ae.?@Ae:@F╙e.ß>@GΣe@Hf     .?@Hf@I#f     DOUBLE .?@I#f     CHR(@JIf    ) .?@JIf7î>ñ>├>@JIf@KUf;@Lhf<@Lhf@O┤f.╬?@O┤f:@Rg    @Sg86 4╗?@Vàg/ì?    ;8U@W¡g >@W¡g@X╣g    COLOR @YΦg     >@YΦg@Z±g;@[h<@[h@^Oh.y@@^Oh:@aÖh    wndow     FROM 9ï@@b┌h áüíü9m>@ci ½üWü9ô9@dSi 9,?@eti ;@fçi<@fçi@i╙i.dB@i╙i:@lsj
  259. @o╪júü9µ  @pk5σ@@qBk.ó@@qBk@rLk
  260. 2A@t}k>@t}k@uçk
  261. 2BA@w╕k>@w╕k@x┬k0kA@zφk@{÷k.òA@{÷k@|2l@|2l@~>l>úü9µ  @ql    ,óü9µ  @Ǻl     TO úü9µ  Ñü@üΦl  4 B >@üΦl@ém     ,óü9µ  ñü@âlm;@äm<@äm@ç╦m.KD@ç╦m:@è%n@ï9nj@îVn8F @îVn8I 0D@ìonX/D=    ,86@Ĭn =    ,86@Åτn Φ4]C@É o    SET CARRY TO 8B@Æ_o>@Æ_o@ôooK4æC    ;      8B>@ôoo@ö╛o=9É @òΦo  0▀C@ûp 8B@ÿ=p@ÖLp.D@ÖLp    , 8B@Ükp @Ükp@¢{p>@¢{p@£êp,.╜B@£êp@¥ùp         ADDITIVE8B@₧░p<@ƒ║p<@ƒ║p@úq.░E@úq:@ÑHq 8l@ªÄq @º╤q*(8Y 0²D@¿≥q0╔D@¬(r(@½4r.εD@½4r    :@¼br(@¼br@¡or>@¡or@«yr8=@»ÿr     .FMT8C 0¢E@░└r82     .FMT    - can't be opened - possible read-only file.      Press any key ...8N@▒s;@▓s@│ s;@┤.s<@┤.s@╖zs.▒F@╖zs:@║▐s*    u_(8< 88@╗$t     .PRG8C 0F@╝Yt    .PRG    - can't be opened - possible read-only file.      Press any key ...8N@╜Öt;@╛¬t@└▌t    .DBO8{@┬Mu;@├[u<@├[u@╞ºu.bG@╞ºu:@╚±uj@╔ v8F @╔ v8I 0HG    POPUPS87 8= 8.     229G@╦[v.HG@╠hv@═sv,.∩F@═sv@╬~v;@╧Év<@╧Év@╥▄v.H@╥▄v:@╒cw82 8<* @╫⌐w    _H    .DBF8W /εG    .DBT8W /εG@┘+x>@┘+x@┌5x;@█Fx<@█Fx@▐Æx.çH@▐Æx:@αyßü9µ      4rH@ßJy        @Γvy
  262. ,@πëy;@ΣÜy@σñy;@µ»y<@µ»y@Θ√y.OI@Θ√y:@±Ñ{8= 8.@≥╤{ 2τH@⌠|    ;@⌡!|@≈/|<@°\| @∙z|86 @·⌐|86@√╦| 8<@ⁿΓ| ;@ 
  263. }<@ 
  264. }@'~.⌠I@'~:@╢    ->@╩    =9ÖH@Ç 8/@bÇ 8.@¿Ç <@⌡Ç 9É  ;@ü<@ü@cü.▌J@cü:@#½é    ORDER 9ÖH@$°é      8.@%â 2öJ@&6â86 <@'Çâ @(ïâ.├J@(ïâ<@)┬â @)┬â@*╬â>9É  ;@+±â<@+±â@.=ä.ÅK@.=ä:@6îà    ->@7│à9ÖH@8ⁿà      8.@: å 2OK.sK@: å< @: å@<så9É  ;@=òå<@=òå@@ßå.▌K@@ßå:@Bç9∩J 8<    u_ 8> ;@C`ç<@C`ç@F¼ç.¿L@F¼ç:@G■ç6SL@H&ê?,?,?,86 ?
  265. @Jïê.ÿL@Jïê ?,?,?,86 ?
  266. @KΩê@L÷ê<@Më<@Më@PQë.±L@PQë:@Rçë8<    u_ 9É  ;@S╛ë<@S╛ë@V
  267. è.ñM@V
  268. è:@Xvè     REQ 8= 8. /5M.HM@Xvè@Xvè0ÖM@Y│è     REQ"8= 8. /tM.çM@Y│è@Y│è@ZΣè/ÜM@ZΣè;@[φè<@[φè@^9ï.]N@^9ï:@`Éï     SHADOW 8= 8. /δM.■M@`Éï@`Éï0RN@a╤ï     SHADOW"8= 8. /-N.@N@a╤ï@a╤ï@bî/SN@bî;@cî<@cî@fjî..P@fjî:@h▒î    -N8V    * 8BPROCEDURE Shadowg                       && displays shadow that grows
  269.   PARAMETER x1,y1,x2,y2
  270.   PRIVATE   x1,y1,x2,y2
  271.  
  272.   x0 = x2+1
  273.   y0 = y2+2
  274.   dx = 1
  275.   dy = (y2-y1) / (x2-x1)
  276.   DO WHILE x0 <> x1 .OR. y0 <> y1+2
  277.      @ x0,y0 FILL TO x2+1,y2+2 COLOR n+/n
  278.      x0 = IIF(x0<>x1,x0 - dx,x0)
  279.      y0 = IIF(y0<>y1+2,y0 - dy,y0)
  280.      y0 = IIF(y0<y1+2,y1+2,y0)
  281.   ENDDO
  282.  
  283. RETURN
  284. *-- EOP: shadowg
  285. @{qÄ<@|Ä<@|Ä@╦Ä.wY@╦Ä:PROCEDURE Help
  286. @âÅ8P ?*-- Activates the HELP window
  287. PARAMETER lc_var
  288. PRIVATE ALL LIKE ??_*
  289. SET CURSOR OFF
  290.  
  291. *-- Select workarea and open Help dbf
  292. lc_area = ALIAS()
  293. SELECT SELECT()
  294. USE @î╬Å82 ? ORDER fld_name NOUPDATE   && Open HELP .dbf
  295.  
  296. SEEK lc_var
  297. IF FOUND()                             && If found show Help
  298.   ln_t = 5
  299.   ln_l = 6
  300.   ln_b = 15
  301.   ln_r = 74
  302.   ON KEY LABEL F3 DO Toggle
  303.   DEFINE WINDOW z_help FROM ln_t+1, ln_l+2 TO ln_b-1, ln_r-2 NONE
  304.   ON ERROR lc_error=error()
  305.   SAVE SCREEN TO zz_help
  306.  
  307.   *-- Make Help Box
  308.   DO shadowg WITH ln_t, ln_l, ln_b, ln_r
  309.   @ ln_t+1, ln_l+1 CLEAR TO ln_b-1, ln_r-1
  310.   @ ln_t, ln_l TO ln_b, ln_r DOUBLE
  311.  
  312.   ln_memline = SET("MEMO")
  313.   SET MEMOWIDTH TO 65
  314.   IF MEMLINES(fld_help) > 9
  315.     @ ln_t+1,ln_r SAY CHR(24)
  316.     @ ln_b-1,ln_r SAY CHR(25)
  317.   ENDIF
  318.   lc_string = CHR(185)+ [ Help for ] + TRIM(fld_headng) +[ ] + CHR(204)
  319.   lc_message = IIF(MEMLINES(fld_help) > 9, ;
  320.                   "@ª╠Æ    NScroll thru Help: Ctrl-Home   Exit Viewing Help: Esc   See Original Screen: F3?", ;
  321.                   "@ºⁿÆ    See Original Screen: F3?" ;
  322.                   )
  323.  
  324.   @ ln_t,CENTER(lc_string,80) SAY lc_string
  325.   @ 0,0 GET fld_help OPEN WINDOW z_help MESSAGE lc_message
  326.   READ
  327.   SET MEMOWIDTH TO ln_memline
  328.   ON ERROR
  329.   ON KEY LABEL F3
  330.   RELEASE WINDOW z_help
  331.   RESTORE SCREEN FROM zz_help
  332.   RELEASE SCREEN zz_help
  333. ENDIF
  334. SET MESSAGE TO
  335. SET CURSOR ON
  336. USE                                              && Close help file
  337. SELECT (lc_area)                                 && Back to edit work area
  338. @╕εö8P ?RETURN
  339. *-- EOP: HELP
  340.  
  341. @╝ò    -N8V    * 8BPROCEDURE Toggle
  342. @╛Sò8P ?*-- Toggles the Help message back to the original screen
  343. SAVE SCREEN to Toggle
  344. RESTORE SCREEN FROM zz_help
  345. SET MESSAGE TO "Press any key..."
  346. mwait = INKEY(15)
  347. RESTORE SCREEN FROM Toggle
  348. RELEASE SCREEN Toggle
  349. SET MESSAGE TO "Scroll thru Help: Ctrl-Home   Exit Viewing Help: Ctrl-End   See Org. Screen: F3"
  350. @╟íû8P ?RETURN
  351. *-- EOP: Toggle
  352.  
  353. @╦╠û    -N8V    * 8BFUNCTION Center
  354. *-- UDF to center a string.
  355. *-- lc_string = String to center
  356. *-- ln_width = Width of screen to center in
  357. *--
  358. *-- Ex. @ 15,center(string,80) say string
  359. *-- Will center the <string> withing 80 columns
  360. PARAMETER lc_string, ln_width
  361. RETURN ((ln_width/2)-(LEN(lc_string)/2))
  362. @╒ÿ<@╓'ÿ<@╓'ÿ@<-tl_form.cod=▓
  363. form.def>█
  364. builtin.def